import axios from "axios"

// 创建一个axios实例对象
const instance = axios.create({
    baseURL: "http://kumanxuan1.f3322.net:8001",
    timeout: 5000
})



// 请求拦截器
instance.interceptors.request.use(config => {

    // 什么时候执行这个函数? 在请求发出去之前执行
    // config是什么?  是一个axios帮我们封装好的关于本次请求信息的对象
    console.log("请求拦截器中的代码", config);

    // !!!在这个函数中,可以去做一些请求发出去之前的准备工作,例如把token添加请求头
    let token = localStorage.getItem("token");
    if (token) {
        //把token设置到请求头中
        config.headers["X-Nideshop-Token"] = token
    }

    // 需要返回config才能成功发出请求
    return config
}, err => {
    return Promise.reject(err)
})

// 响应拦截器
instance.interceptors.response.use(res => {
    // 什么时候执行这个函数?  在接收到响应之后,数据进入组件之前执行

    // res是一个axios封装好的一个响应对象, 里面包含有后端给我们的数据

    // 这个函数可以用来做什么?  可以对响应回来的数据进行统一处理

    return res.data //这里的数据return到请求回调中的then中的res,被res接受
}, err => {
    return Promise.reject(err)
})



export default instance